package Service.Teacher;

import Entity.Role.Admin;
import Entity.Role.Teacher;
import Entity.Role.Student;

public interface LoginService {

    /**
     * 学生登录
     *
     * @param student 要登陆的学生对象
     * @return 1001 登录成功 ，1002 密码错误 ，1003 账号不存在 . 1004 登录失败
     */
    Integer stuLogin(Student student);

    /**
     * 老师登录
     *
     * @param teacher 要登陆的老师对象
     * @return 1001 登录成功 ，1002 密码错误 ，1003 账号不存在 . 1004 登录失败
     */
    Integer teacherLogin(Teacher teacher);


    /**
     * 管理员登录
     *
     * @param admin 要登录的管理员对象
     * @return 1001 登录成功 ，1002 密码错误 ，1003 账号不存在 . 1004 登录失败
     */
    Integer adminLogin(Admin admin);


    /**
     * 通过编号和角色区分来获取个人信息
     *
     * @param NO   学号或者编号
     * @param role 1是学生 2是老师 3是管理员
     * @return Object
     */
    Object getInfoByNOAndRole(String NO, String role);


    /**
     * 用户修改密码
     *
     * @param NO      用户的编号
     * @param role    1是学生 2是老师 3是管理员
     * @param oldPass 旧密码
     * @param newPass 新密码
     * @return 1001 修改成功 ，1002 旧密码错误 1003 修改失败
     */
    Integer updatePassByNOAndRole(String NO, String role, String oldPass, String newPass);


    /**
     * 用户退出移除 用户的账户
     * @param NO 账户
     */
    void removeUserLogin(String NO);

}
